@Controller
是 Spring Framework 中的一個注解,用於標記 Java 類,表示它是 Spring MVC 應用程式裡的控制器。控制器的主要工作是處理 HTTP 請求,執行對應的業務邏輯,然後返回視圖或其他形式的response給客戶端。
讓我們來是實際操作一次:
package com.example.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/hello") // 處理請求的映射
public ModelAndView helloWorld() {
// 建立一個 ModelAndView 物件,並指定視圖名稱
ModelAndView modelAndView = new ModelAndView("helloView");
// 向模型添加數據,可以在視圖中使用
modelAndView.addObject("message", "Hello, Spring MVC!");
return modelAndView; // 回傳 ModelAndView 物件
}
}
在上面的例子中:
@Controller
注解標記 HelloController
類為 Spring MVC 的控制器。@RequestMapping("/hello")
注解指定了處理 /hello
請求的方法 helloWorld()
。ModelAndView
類被用來建立一個 ModelAndView 物件,並指定視圖名稱(在這個例子中是 "helloView"
)。addObject()
方法將數據添加到模型,這樣可以在視圖中呼叫它。return modelAndView;
透過回傳 ModelAndView 物件,告訴 Spring MVC 使用 helloView
視圖並將模型數據渲染到該視圖。這一個簡單的範例,示範了如何使用 @Controller
來創建一個基本的控制器,處理請求並返回 ModelAndView
物件。當使用者訪問 /hello
URL 時,可以由 message
物件來取得 "Hello, Spring MVC!"
的字串。
另外有 @Restcontroller
、 @GetMapping
、 @PostMapping
等等的用法,日後會來說明與@Controller
、 @RequestMapping
有什麼樣的區別。
https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller.html
https://www.baeldung.com/spring-controllers